今天一樣是分析 memory dump,Cyber Defenders 的 RedLine Lab,這題的分類是 Endpoint Forensics,難度為 easy。
身為 Security Blue 團隊的一員,你的任務是使用 RedLine 和 Volatility 工具分析記憶體轉儲。你的目標是追蹤攻擊者在受感染機器上執行的步驟,並確定他們是如何繞過網路入侵偵測系統 (NIDS) 的。你的調查將識別攻擊中使用的特定惡意軟體家族及其特徵。此外,你的任務是辨識並消除攻擊者留下的任何痕跡或痕跡。
volatility 3
透過 pslist、cmdline 和 netstat 都沒有得到什麼線索,用 malfind 後發現可疑進程
malfind 會掃描記憶體中所有進程,尋找具有可疑屬性的記憶體區域
vol -f MemoryDump.mem windows.malfind
輸出中另外兩個都是系統進程,只有這個不是系統進程且擁有執行+讀+寫的權限,非常可疑
把他 dump 出來丟到 VirusTotal 上看看
可以看到 oneetx.exe 是惡意軟體
Ans:oneetx.exe
要查看進程的父子關係要使用 pstree,pstree 會以樹狀結構列出所有正在執行的進程
vol -f MemoryDump.mem windows.pstree
pstree 以縮排方式顯示進程的父子關係:沒有縮排是根進程、一層縮排是第一層子進程、兩層縮排是第二層子進程。 我們這裡可以看到 oneetx.exe 的子進程是 rundll32.exe。
Ans:rundll32.exe
什麼是記憶體保護? 簡單來說,它就像為每個程式的記憶體畫上界線,並規定這塊區域能做什麼 (ex:只能讀取、只能執行,或可以讀寫)。如果存取行為違反了保護規則,作業系統會終止這個違規的進程。
剛剛 malfind 的輸出就有看到他的記憶體保護。
Ans:PAGE_EXECUTE_READWRITE
pstree 輸出中有一個 tun2socks.exe 名字一看就跟 VPN 有關。VPN 用隧道技術來做兩端的連線,而 tun (tunnel) 暗示隧道,SOCKS 是一種網路代理協定,所以 tun2socks.exe 很可能負責 VPN 連線。Google 搜尋 tun2socks.exe。
搜到它是某些 VPN 的核心元件,其中就包含 tun2socks.exe 的父進程 Outline。
Ans:Outline.exe
netstat 並沒有顯示可疑連線。netstat 只會顯示一般網路連線,所以用 netscan 插件,netscan 插件會尋找隱藏的網路連線。
輸出中我們先前找到的惡意程式有一個對外連線,這很可能就是攻擊者的 C2 server。
Ans:77.91.124.20
嘗試 strings (提取人類可讀資訊的工具) 整個 memory dump 並且用 grep (搜尋符合特定模式的文字行) 搜尋攻擊者的 IP 來找相關的線索。
strings MemoryDump.mem | grep 77.91.124.20
Ans:http://77.91.124.20/store/games/index.php
在 pstree 的輸出可以看到完整路徑 \Device\HarddiskVolume3\Users\Tammam\AppData\Local\Temp\c3912a ,前面是硬碟名稱,又因為它在的目錄是 C 槽預設就有的目錄,所以可以判斷是 C 槽。
Ans:C:\Users\Tammam\AppData\Local\Temp\c3912af058\oneetx.exe
今天的 RedLine Lab 展現了現代惡意軟體逃避偵測的技術,並且讓我們學會使用新的 volatility 插件。首先透過 malfind 發現具有異常記憶體保護的程序,接著使用 netscan 發現了攻擊者隱藏 C2 通訊,最後透過識別 tun2socks 元件發現攻擊者使用 VPN Tunnel 技術來逃避 NIDS 的偵測。
明天我們將學習分析更複雜的攻擊場景。